name: CI Checks
on:
  push:
    branches: ["**"]
  pull_request:
    branches: [main]
  workflow_dispatch:
jobs:
  spell-check:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout Parent Repo
        uses: actions/checkout@v2
        with:
          ref: main
          repository: aws/aws-iot-device-sdk-embedded-C
          path: main
      - name: Clone This Repo
        uses: actions/checkout@v2
        with:
            path: ./kernel
      - name: Install spell
        run: |
          sudo apt-get install spell
          sudo apt-get install util-linux
      - name: Check spelling
        run: |
          PATH=$PATH:main/tools/spell
          # Make sure that the portable directory is not included in the spellcheck.
          sed -i 's/find $DIRNAME/find $DIRNAME -not -path '*portable*'/g' main/tools/spell/find-unknown-comment-words
          find-unknown-comment-words --directory kernel/ --lexicon ./kernel/.github/lexicon.txt
          if [ "$?" = "0" ]; then
            exit 0
          else
            exit 1
          fi
  formatting:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - name: Install Uncrustify
        run: sudo apt-get install uncrustify
      - name: Run Uncrustify
        run: |
          uncrustify --version
          find . \( -name portable \) -prune -false -o -iname "*.[hc]" -exec uncrustify --check -c .github/uncrustify.cfg {} +
      - name: Check For Trailing Whitespace
        run: |
          set +e
          grep --exclude="README.md" --exclude-dir="portable"  -rnI -e "[[:blank:]]$" .
          if [ "$?" = "0" ]; then
            echo "Files have trailing whitespace."
            exit 1
          else
            exit 0
          fi

  url-check:
    runs-on: ubuntu-latest
    steps:
      - name: Clone This Repo
        uses: actions/checkout@v2
        with:
            path: ./kernel
      - name: URL Checker
        run: |
            bash kernel/.github/actions/url_verifier.sh kernel

